/** 请求后端公共请求头*/
function requestDTO(obj) {
    var header = {
        appName: "EDEVICE",
        dataTime: new Date().getTime(),
        user: '',
        language: 'ZH_CN',
        serviceName: '',
        versionId: 'v0.1',
        token: null
    };
    var data = {
        header: header,
        body: obj
    };
    return JSON.stringify(data);
}

/**加载遮罩*/
function showLoad() {
    return layer.load(0, {shade: [0.5, '#666c7f']});
}

/**关闭遮罩*/
function closeLoad(index) {
    layer.close(index);
}

/**遮罩执行成功*/
function showSuccess() {
    layer.msg('执行成功！', {time: 1000, offset: 'auto'});
}

/**判断是否为空*/
function isEmpty(obj) {
    return typeof obj == "undefined" || obj == null || obj === "";
}

/**
 * 根据dataType获取数据字典
 */
function getDataDictionary(dataType) {
    var dictionaryList = layui.data('DataDictionary');
    return dictionaryList[dataType];
}
/**
 * 根据dataType设置option
 */
function addOption(target, dataType, flag) {
    // 先清空掉之前的选项
    target.find("option").remove();
    // 如果为true则显示请选择选项
    if (flag) {
        target.append(new Option());
    }
    // 查询数据字典，并赋值option
    var labelList = getDataDictionary(dataType);
    $.each(labelList, function (index, item) {
        target.append(new Option(item.label, item.value));
    });
}

/**
 * 根据dataType和value获取对应label
 */
function getLabel(dataType, value) {
    var label = "";
    // 查询数据字典，并赋值option
    var labelList = getDataDictionary(dataType);
    $.each(labelList, function (index, item) {
        if (item.value == value) {
            label = item.label;
            // 跳出循环。return false;——跳出所有循环；相当于 javascript 中的 break 效果。return true;——跳出当前循环，进入下一个循环；相当于 javascript 中的 continue 效果
            return false;
        }
    });
    return label;
}

// 数据字典类型
var DataType = {
    // 设备类型
    DeviceType: 3,
    // 传感器类别
    SensorType: 4
};

/*
* 将{id: xx, pid: xx} 转成 {id: xx, pid: xx, children: {}} 的形式
*/
function listToTree(data, options) {
    if (data && data.length) {
        options = options || {};
        var ID_KEY = options.idKey || 'id';
        var PARENT_KEY = options.parentKey || 'pid';
        var CHILDREN_KEY = options.childrenKey || 'children';
        var tree = [];
        var childrenOf = {};
        var item, id, parentId;

        for (var i = 0, length = data.length; i < length; i++) {
            item = data[i];
            id = item[ID_KEY];
            parentId = item[PARENT_KEY] || 0;
            // 每行数据都可能存在子类
            childrenOf[id] = childrenOf[id] || [];
            // 初始化子类
            item[CHILDREN_KEY] = childrenOf[id];
            if (parentId != 0) {
                // 初始化其父的子节点
                childrenOf[parentId] = childrenOf[parentId] || [];
                // 把它推到父类下的children
                childrenOf[parentId].push(item)
            } else {
                tree.push(item)
            }
        }
        return tree
    } else {
        return []
    }
}

// 图标转换
function getIconPath(icon) {
    var iconPath = '';
    if (icon === 'icon-voucher') {
        iconPath = '../static/icon/voucher.png';
    } else if (icon === 'icon-site') {
        iconPath = '../static/icon/site.png';
    } else if (icon === 'icon-device') {
        iconPath = '../static/icon/device.png'
    }
    return iconPath;
}
// 是否展开
function expandFlag(level) {
    var isSpread = false;
    // 默认展开到第二个节点
    if (level === 1) {
        isSpread = true;
    }
    return isSpread;
}

/**
 * js实现post方式提交打开新窗口
 * @param URL
 * @param PARAMS
 */
function postOpenWindow(URL, PARAMS) {
    var temp_form = document.createElement("form");
    temp_form.action = URL;
    temp_form.target = "_blank";//打开新页面
    temp_form.method = "post";
    temp_form.style.display = "none";
    for (var x in PARAMS) {
        var opt = document.createElement("textarea");
        opt.name = x;
        opt.value = PARAMS[x];
        temp_form.appendChild(opt);
    }
    document.body.appendChild(temp_form);
    temp_form.submit();
}

//显示描述
function show_tips(t, message, color){
    layer.tips(message, t, {
        tips:[1, color],
        time: 1000
    })
}